// 给所有ajax设置根路径
axios.defaults.baseURL = 'http://api-breakingnews-web.itheima.net'
// 给所有请求设置请求头 (缺点: 不应该设置的地方也设置了)
// axios.defaults.headers.common['Authorization'] = localStorage.getItem('token')

// 请求拦截器
axios.interceptors.request.use(function (config) {
    // config 里面有许多参数
    // 判断路径 - 路径中包含 /my 或者 以 /my 开头的路径添加身份认证信息
    if (config.url.indexOf('/my') !== -1) {
        // 不要用对象覆盖, 否则原有的设置会被覆盖掉
        config.headers['Authorization'] = localStorage.getItem('token')
    }

    // 成功设置完毕之后一定要返回这个对象
    return config
}, function (error) {
    // 请求失败后做些什么
    return Promise.reject(error)
})


// 响应烂机器 - 登录(无token 或 token过期(会返回 '身份整整失败！') == '身份整整失败！')
axios.interceptors.response.use(function (response) {
    // console.log(response);
    // 判断响应信息 - 没有token(没有经过登录过程) 或 token过期
    if (response.data.message === '身份认证失败！') {
        // 返回到登录页
        location.href = '/login.html'
        // token过期, 销毁token
        localStorage.removeItem('token')
    }



    // 注意: 一定要返回操作后的参数
    return response
}, function () {

})


// 格式化日期
function formDate(str) {
    let dt = new Date(str)

    let y = dt.getFullYear()
    let m = padZero(dt.getMonth() + 1)
    let d = padZero(dt.getDate())
    let hh = padZero(dt.getHours())
    let mm = padZero(dt.getMinutes())
    let ss = padZero(dt.getSeconds())

    return `${y}-${m}-${d}-${hh}-${mm}-${ss}`
}


// 补0函数
function padZero(n) {
    return n < 10 ? '0' + n : n
}